Expand description
Overview
test_case
crate provides procedural macro attribute that generates parametrized test instances.
Getting Started
Crate has to be added as a dependency to Cargo.toml
:
[dev-dependencies]
test-case = "2.2.2"
and imported to the scope of a block where it’s being called
(since attribute name collides with rust’s built-in custom_test_frameworks
) via:
use test_case::test_case;
Example usage:
#[cfg(test)]
mod tests {
use test_case::test_case;
#[test_case(-2, -4 ; "when both operands are negative")]
#[test_case(2, 4 ; "when both operands are positive")]
#[test_case(4, 2 ; "when operands are swapped")]
fn multiplication_tests(x: i8, y: i8) {
let actual = (x * y).abs();
assert_eq!(8, actual)
}
}
Output from cargo test
for this example:
$ cargo test
running 4 tests
test tests::multiplication_tests::when_both_operands_are_negative ... ok
test tests::multiplication_tests::when_both_operands_are_positive ... ok
test tests::multiplication_tests::when_operands_are_swapped ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Documentation
Most up to date documentation is available in our wiki.